auto_impl
A proc-macro attribute for automatically implementing a trait for references, some common smart pointers and closures.
Usage
This library requires Rust 1.37.0 or newer.
Add auto_impl
to your Cargo.toml
and just use it in your crate:
// In Rust 2015 you still need `extern crate auto_impl;` at your crate root
use auto_impl;
Add an auto_impl
attribute to traits you want to automatically implement for wrapper types. Here is a small example:
// This will generate two additional impl blocks: one for `&T` and one
// for `Box<T>` where `T: Foo`.
requires_foo; // works: through the impl we defined above
requires_foo; // works: through the generated impl
requires_foo; // works: through the generated impl
For more explanations, please see the documentation and for more examples, see the examples folder.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.